package com.ruoyi.eqmonitor.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 设备监测指标 最新数据对象 opt_device_monitor_last_data
 * @author ruoyi
 * @date 2022-11-25
 */
@TableName("opt_device_monitor_last_data")
public class OptDeviceMonitorLastData implements Serializable {//extends BaseEntity{

    private static final long serialVersionUID = 1L;

    /** 编号 */
	@TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceCode;

    /** 站点名称 */
    @Excel(name = "站点名称")
    private String siteName;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 安装时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date installTime;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal abx;

    /** 维度 */
    @Excel(name = "维度")
    private BigDecimal aby;

    /** 采集数据编码 */
    @Excel(name = "采集数据编码")
    private String code;

    /** 采集数据值 */
    @Excel(name = "采集数据值")
    private Double codeValue;

    /** 采集指标单位 */
    @Excel(name = "采集指标单位")
    private String dataUnit;

    /** 数据采集时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "数据采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date monitorTime;

    /** 采集指标名称 */
    @Excel(name = "采集指标名称")
    private String monitorName;

    @TableField(exist = false)
    @Excel(name = "物探点号")
    private String wtdh;
    @TableField(exist = false)
    @Excel(name = "地面高程")
    private Double dmgc;

    /** 污水管点表名 */
    @TableField(exist = false)
    @JsonIgnore
    private String wsgPointTableName;

    /** 请求参数 */
    @TableField(exist = false)
    @JsonIgnore
    private Map<String, Object> params;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDeviceName(String deviceName)
    {
        this.deviceName = deviceName;
    }

    public String getDeviceName()
    {
        return deviceName;
    }
    public void setDeviceCode(String deviceCode)
    {
        this.deviceCode = deviceCode;
    }

    public String getDeviceCode()
    {
        return deviceCode;
    }
    public void setSiteName(String siteName)
    {
        this.siteName = siteName;
    }

    public String getSiteName()
    {
        return siteName;
    }
    public void setDeviceType(String deviceType)
    {
        this.deviceType = deviceType;
    }

    public String getDeviceType()
    {
        return deviceType;
    }
    public void setInstallTime(Date installTime)
    {
        this.installTime = installTime;
    }

    public Date getInstallTime()
    {
        return installTime;
    }
    public void setAbx(BigDecimal abx)
    {
        this.abx = abx;
    }

    public BigDecimal getAbx()
    {
        return abx;
    }
    public void setAby(BigDecimal aby)
    {
        this.aby = aby;
    }

    public BigDecimal getAby()
    {
        return aby;
    }
    public void setCode(String code)
    {
        this.code = code;
    }

    public String getCode()
    {
        return code;
    }
    public void setCodeValue(Double codeValue)
    {
        this.codeValue = codeValue;
    }

    public Double getCodeValue()
    {
        return codeValue;
    }

    public String getDataUnit() {
        return dataUnit;
    }
    public void setDataUnit(String dataUnit) {
        this.dataUnit = dataUnit;
    }

    public Date getMonitorTime() {
        return monitorTime;
    }
    public void setMonitorTime(Date monitorTime) {
        this.monitorTime = monitorTime;
    }

    public Map<String, Object> getParams() {
        if (params == null) {
            params = new HashMap<>();
        }
        return params;
    }
    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

    public String getMonitorName() {
        return monitorName;
    }

    public void setMonitorName(String monitorName) {
        this.monitorName = monitorName;
    }

    public String getWtdh() {
		return wtdh;
	}

	public void setWtdh(String wtdh) {
		this.wtdh = wtdh;
	}

	public Double getDmgc() {
		return dmgc;
	}

	public void setDmgc(Double dmgc) {
		this.dmgc = dmgc;
	}

    public String getWsgPointTableName() {
        return wsgPointTableName;
    }

    public void setWsgPointTableName(String wsgPointTableName) {
        this.wsgPointTableName = wsgPointTableName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceName", getDeviceName())
            .append("deviceCode", getDeviceCode())
            .append("siteName", getSiteName())
            .append("deviceType", getDeviceType())
            .append("installTime", getInstallTime())
            .append("abx", getAbx())
            .append("aby", getAby())
            .append("code", getCode())
            .append("codeValue", getCodeValue())
            .append("dataUnit", getDataUnit())
            .append("monitorTime", getMonitorTime())
            .append("monitorName", getMonitorName())
            .append("params", getParams())
//            .append("createBy", getCreateBy())
//            .append("updateTime", getUpdateTime())
//            .append("updateBy", getUpdateBy())
            .toString();
    }
}
